#ifndef MAIN_H
#define MAIN_H

#include <string>
#include <iostream>
#include <vector>
#include <pthread.h>
#include <sys/time.h>
#include <cstring>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <termios.h>
#include <unistd.h>
#include <sys/select.h>
#include <math.h>
#include <fstream>

#include <stdio.h>
#include <stdint.h>
#include <sys/ioctl.h>
//#include "i2c.h"
#include <linux/i2c-dev.h>

#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdlib.h>
#include <errno.h>
#include <vector>





#include "global_para.hpp"
#include "guided.hpp"
#include "serial_device.hpp"
#include "protocol.hpp"
#include "telemetry_thread.hpp"
#include "camera_thread.hpp"
#include "flightcontrol_thread.hpp"
#include"IARC_task.hpp"

#include "i2c.hpp"
// #include "onboard_land.hpp"
#include "UDP.hpp"

#include "lcm/lcm-cpp.hpp"
#include "target/target_t.hpp"



using namespace std;

typedef struct usr_thread
{
    LinuxSerialDevice* usr_radio;
    LinuxSerialDevice* usr_flightcontrol;
    LinuxSerialDevice* usr_camera;
    LinuxSerialDevice* usr_SBUS;
}usr_thread_t;


#endif